跳到主要内容

Unity 的项目结构

参考资料 Unity3D/项目:Unity工程目录规范 参考资料 Unity下Assets资源目录结构管理

基本分类

基础目录

Resources:可动态加载的资源路径,一般使用 Resources.Load 方式加载

  • 只读文件;
  • 资源全部打包发布;
  • 压缩打包;
  • 加密文件;

Editor:存放编辑器的扩展脚本。 所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。工具类的脚本放在这里,或者是一些编辑时用的 DLL。

Plugins:SDK依赖的库文件

StreamingAssets:可动态加载的资源路径

  • 只读文件;
  • 资源全部打包发布;
  • 不压缩打包;
  • 不加密;
  • WWW方式加载的文件

Scripts:存放脚本

Scenes:存放场景

资源目录

Textures (贴图) Fonts (文字) Audios (音频) Prefabs (预制体) Models (模型) Shaders (材质球)

动态加载资源的方式

Resources.Load:动态内部加载 AssetBundle:动态外部加载

细分规则

Assets 目录中的所有资源文件名(场景、脚本、预设、模型、网格、纹理、材质、精灵、着色器、音频剪辑、视频剪辑)均采用 大驼峰式命名法 ,即每一个单词的首字母都大写。且使用能够描述其功能或意义的英文单词或词组。

资源文件属于同一类型,需要添加编号加以区别的情况下,采用后缀下划线 _ 加两位数字进行编号。 

Assets 根目录

Assets 根目录下的文件夹分类如下,根据资源文件使用的目的分类: 

文件夹说明(01-10为自定义文件夹,最后4个为默认目录,即系统可识别文件夹,保证名字丝毫不差):

【01.Scenes】:存放所有场景(Scene)文件,统一管理,方便快速寻找并打开场景。  【02.UI】:存放与游戏界面(UI)相关的资源文件,比如按钮,图标,输入框,列表等。  【03.Environment】:存放与环境相关的资源文件,比如背景,建筑物,地形,天空,树木,水体等。  【04.Characters】:存放与人物相关的资源文件,比如玩家控制的角色,敌人,怪兽,NPC,动物等。  【05.Effects】:存放与特效相关的资源文件,比如粒子系统,摄像头渲染特效,动作特效,技能特效,画面特效等。  【06.Input】:存放与玩家输入相关的资源文件,比如PC输入,触屏输入,游戏手柄输入,自定义输入等。  【07.Network】:存放与网络通讯相关的资源文件,比如服务器连接,网络缓存,即时通讯等。  【08.Database】:存放与数据库操作相关的资源文件,比如本地存储,网络存储等。  【09.Others】:存放暂时不知道如何归类的资源文件。  【10.Test】:存放与游戏测试相关的资源文件,在游戏发布前删除该文件夹。  【Editor】:插件目录,该目录在编译项目时,会优先编译,方便项目中代码调用。  【Plugins】:该目录下的代码可调用Unity Editor 的API,存放扩展编辑器的代码。编译时不会被打包到游戏包中。  【Resources】:项目中默认的资源路径,会直接打包到游戏包中,并且可在脚本中加载该目录下的资源。

二级目录下的分类

二级目录下的文件夹分类如下,根据资源文件的文件类型分类: 

【Animations】:动画 相关的资源文件。  【Animators】:动画控制器 相关的资源文件。  【Audios】:音频 相关的资源文件。  【Materials】:材质 相关的资源文件。  【Models】:模型 相关的资源文件。  【Prefabs】:预制体 相关的资源文件。  【Sprites】:精灵 相关的资源文件。  【Shaders】:着色器 相关的资源文件。  【Scripts】:脚本 相关的资源文件。  【Textures】:纹理 相关的资源文件。

注明:如果该二级目录不存在某个类型的资源文件,可以省略其文件夹,如【02.UI】目录下:

三级目录下的分类

三级目录下直接存放相关类型的资源文件,如下【Animations】目录下存放所有的动画文件: 

程序工程结构案例

3rd-第三方插件目录

  • Demigiant 缓动插件
  • MeshAnimator Mesh动画插件

Arts-美术资源目录

  • Atlas 游戏图集目录,主要为UI图集
  • Audio 音频资源目录
  • Config 项目配置文件目录
    • Editor 编辑器插件(位置应该动态指定)
    • Load 预加载配置
    • Localization 国际化配置
    • Tab 配表Tab
    • Unit 角色配置
  • Effect 项目特效资源目录
  • Font 字体资源目录
  • Level 关卡或场景资源目录
    • Battle_NameXXX 战斗场景
    • Login 登陆初始化场景
    • CreatePlayer 创建角色场景
    • Map 瓦片大世界初始化场景
  • Shader 渲染脚本资源
  • Unit 显示单元目录
    • Hero 英雄角色资源目录
    • Map 大地图相关资源
    • Soldier 士兵角色资源目录
  • Window 界面资源目录

Editor Default Resources -默认标记器资源目录

Plugins-插件资源目录

  • Framework 项目框架插件
  • Launcher 游戏初始化场景,启动游戏

Scripts

  • Auto 自动生成代码目录(目前包括消息和表格)
  • Base 项目基础代码目录(辅助代码,辅助模块)
  • Editor 项目编辑器代码目录
  • Logic 项目逻辑代码目录(请勿将基础代码放在该目录)
    • Map 大地图核模块
    • CreatePlayer 创建角色模块
    • Building 建筑模块

Standard Assets-标准资源目录

StreamingAssets-流资源包输出目录